The invention relates to the field of communications. More specifically, the invention relates to hierarchy tree-based quality of service classification for packet processing.
Maintaining efficient flow of information over data communication networks is becoming increasingly important in today""s economy. Communications networks are evolving toward a connectionless model from a model whereby the networks provide end-to-end connections between specific points. In a network which establishes specific end-to-end connections to service the needs of individual applications, the individual connections can be tailored to provide a desired bandwidth for communications between the end points of the connections. This is not possible in a connectionless network. The connectionless model is desirable because such a model saves the overhead implicit in setting up connections between pairs of endpoints and also provides opportunities for making more efficient use of the network infrastructure through statistical gains. Many networks today provide connectionless routing of data packets, such as Internet Protocol (xe2x80x9cIPxe2x80x9d) data packets, over a network which includes end-to-end connections for carrying data packets between certain parts of the network. The end-to-end connections may be provided by technologies such as Asynchronous Transfer Mode (xe2x80x9cATMxe2x80x9d), Time Division Multiplexing (xe2x80x9cTDMxe2x80x9d) and Sychronous Optical Network (SONET) and Synchronous Digital Hierarchy (SDH).
A Wide Area Network (xe2x80x9cWANxe2x80x9d) is an example of a network used to provide interconnections capable of carrying many different types of data between geographically separated nodes. For example, the same WAN may be used to transmit video images, voice conversations, e-mail messages, data to and from database servers, and so on. Some of these services place different requirements on the WAN.
A typical WAN comprises a shared network which is connected by access links to two or more geographically separated customer premises. Each of the customer premises may include one or more devices connected to the network. More typically, each customer premise has a number of computers connected to a local area network (xe2x80x9cLANxe2x80x9d). The LAN is connected to the WAN access link at a service point. The service point is generally at a xe2x80x9cdemarcationxe2x80x9d unit or xe2x80x9cinterface devicexe2x80x9d which collects data packets from the LAN which are destined for transmission over the WAN and sends those packets across the access link. The demarcation unit also receives data packets coming from the WAN across the access link and forwards those data packets to destinations on the LAN. One. type of demarcation unit may be termed an ESP (Enterprise Service Point).
A network service is dependent on the amount of data it can send and receive from a source device to one or more destination devices. Therefore, the quality of a network service is dependent on the amount of network resources (such as uptime, outages, bandwidth, delay, loss, and jitter) the network can utilize to transfer its data. However, in a conventional IP network, all network services share all the network resources on a first come, first serve (xe2x80x9cbest effortxe2x80x9d) basis. This may be detrimental to some network services since some services require more network resources than other services.
For example, a typical video conferencing service requires much more data to be sent than a typical e-mail service. Transmitting a video signal for a videoconference requires fairly large bandwidth, short delay (or xe2x80x9clatencyxe2x80x9d), small jitter, and reasonably small data loss ratio. An e-mail service requires far less network resources than a video conferencing service because the e-mail service often has relatively little data to send to its destinations and it is generally acceptable if an e-mail transmission is slightly delayed in transiting a network. Transmitting e-mail messages or application data can generally be done with lower bandwidth but can tolerate no data loss. Furthermore, it is not usually critical that e-mail be delivered instantly, so e-mail services can usually tolerate longer latencies and lower bandwidth than other services. In addition, the e-mail service requires only enough network resources to send data in a single direction. Conversely, the typical video conferencing service requires enough network resources to send data constantly and seamlessly in two directions. This may be required if all participants in the video conference want to see each other, and thus requires an individual""s image to be sent to the other participants and the other participant""s images to be received.
If the network resources are shared in a best effort fashion between these and other types of network services, the e-mail service will deliver e-mail extremely fast, but the video conferencing service would not be able to display a very clear picture. What is desired is to have a policy.where the network resources utilization is weighted such that the video conferencing service receives more network resources than e-mail services.
Typically, an enterprise which wishes to link its operations by a WAN obtains an unallocated pool of bandwidth for use in carrying data over the WAN. While it is possible to vary the amount of bandwidth available in the pool (by purchasing more bandwidth on an as-needed basis), there is no control over how much of the available bandwidth is taken by each application.
Again, guaranteeing the Quality of Service (xe2x80x9cQoSxe2x80x9d) needed by applications which require low latency is typically done by dedicating end-to-end connection-oriented links to each application. This tends to result in an inefficient allocation of bandwidth. Network resources which are committed to a specific link are not readily shared, even if there are times when the link is not using all of the resources which have been allocated to it. Thus committing resources to specific end-to-end links reduces or eliminates the ability to achieve statistical gains. Statistical gains arise from the fact that it is very unlikely that every application on a network will be generating a maximum amount of network traffic at the same time.
If applications are not provided with dedicated end-to-end connections but share bandwidth, then each application can, in theory, share equally in the available bandwidth. In practice, however, the amount of bandwidth available to each application depends on things such as router configuration, the location(s) where data for each application enters the network, the speeds at which the application can generate the data that it wishes to transmit on the network and so on. The result is that bandwidth may be allocated in a manner that bears no relationship to the requirements of individual applications or to the relative importance of the applications. There are similar inequities in the latencies in the delivery of data packets over the network.
The term xe2x80x9cQuality of Servicexe2x80x9d is used in various different ways. In general, QoS refers to a set of parameters which describe the required traffic characteristics of a data connection. The term xe2x80x9cQoSxe2x80x9d generally refers to a set of one or more of the following interrelated parameters which describe the way that a data connection treats data packets generated by an application: a minimum bandwidth, a maximum delay, a maximum loss and jitter. A minimum bandwidth is a minimum rate at which a data connection should be capable of forwarding data originating from the application. The data connection might be incapable of forwarding data at a rate faster than the minimum bandwidth but should be capable of forwarding data at a rate equal to the rate specified by the minimum bandwidth. The maximum delay is a maximum time taken for data from an application to completely traverse the data connection. QoS requirements are met only if data packets traverse the data connection in a time equal to or shorter than the maximum delay. The maximum loss is a maximum fraction of data packets from the application which may not be successfully transmitted across the data connection. Jitter is a measure of how much variation there is in the delay experienced by different packets from the application being transmitted across the data connection. In an ideal case, where all packets take exactly the same amount of time to traverse the data connection, the jitter is zero. Jitter may be defined, for example, as any one of various statistical measures of the width of a distribution function which expresses the probability that a packet will experience a particular delay in traversing the data connection. Different applications require different levels of QoS.
Recent developments in core switches for WANs have made it possible to construct WANs capable of quickly and efficiently transmitting vast amounts of data. There is a need for a way to provide network users with control over the QoS provided to different data services which may be provided over the same network.
Service providers who provide access to WANs wish to provide their customers with xe2x80x9cService Level Agreementsxe2x80x9d rather than raw bandwidth. A Service Level Agreement is an agreement between a service provider and a customer that defines the level of service that will be provided for each particular type of application. This will permit the service providers to take advantage of statistical gain to more efficiently use the network infrastructure while maintaining levels of QoS that customers require. To do this, the service providers need a way to manage and track usage of these different services.
Applications connected to a network generate packets of data for transmission on the network. In providing different levels of service it is necessary to be able to sort or xe2x80x9cclassifyxe2x80x9d data packets from one or more applications into different classes which will be accorded different levels of service. The data packets can then be transmitted in a way which maintains the required QoS for each application. Data packets generated by one or more applications may belong to the same class.
A method and apparatus for hierarchy tree-based quality of service classification for packet processing are described. In one embodiment, a method comprises receiving a packet of a number of packets for storage into an egress port. The egress port has a number of queues associated with nodes of a hierarchy tree. The hierarchy tree has a level of nodes associated with contexts for the number of packets. The method also includes storing the packet into a queue of the number of queues of the egress port based the associated node within the hierarchy tree.
In an embodiment, a network element comprises a traffic card that includes an egress port. The egress port is to include a number of egress queues to store a number of data packets. The network element also includes a forwarding card. The forwarding card includes a memory to store a port tree having a context level of nodes, wherein each node at the context level is associated with a context for the number of data packets. The forwarding card also includes a forwarding engine to store a data packet of the number of data packets into an egress queue of the number of egress queues based on the context of the data packet.